/*
 * @Description:
 * @Author: dh
 * @Date: 2021-08-19 17:18:39
 * @LastEditors: dh
 * @LastEditTime: 2022-01-24 15:27:38
 */
var gulp = require('gulp') // 引入gulp模块D
var uglify = require('gulp-uglify') // 压缩js插件
var rename = require('gulp-rename') // 重命名
var less = require('gulp-less') // 编译less
var cleanCss = require('gulp-clean-css') // 压缩css
var imagemin = require('gulp-imagemin') // 压缩图片插件
var browserSync = require('browser-sync').create() // 启动服务器插件

/* 压缩js 重命名 */
gulp.task('jsTask', function () {
	gulp.src('./js/*.js') // 源
		.pipe(uglify()) // 压缩处理
		.pipe(rename({ suffix: '.min' })) // 重命名处理
		.pipe(gulp.dest('./dist/js')) // 输出
})

/* 编译less 压缩css 重命名 */
gulp.task('cssTask', function () {
	gulp.src('./less/*.less') // 源
		.pipe(less()) // 编译less
		.pipe(cleanCss()) // 压缩css
		.pipe(rename({ suffix: '.min' })) // 重命名
		.pipe(gulp.dest('./dist/css')) // 输出
})

/* 压缩图片 */
gulp.task('imgTask', function () {
	gulp.src('./images/*.{jpg,png}') // 源
		.pipe(imagemin()) // 压缩图片
		.pipe(gulp.dest('./dist/images')) // 目标
})

/* 观察者模式 */
gulp.task('watch', function () {
	gulp.watch('./less/*.less', ['cssTask']) // 观察less变动 如果发生变化 马上执行对应任务
})

/* 开启任务 */
gulp.task('serve', function () {
	browserSync.init({
		// 初始化 启动一个服务器
		server: './', // 服务器目录  以当前目录为根目录
	})
})

/* 默认任务 */
gulp.task('default', ['watch', 'serve'])

/*
    （上线的时候）手动执行的：
        gulp jsTask
        gulp imgTask
*/
